using HamcoWcs.Entitys.Bases;
using HamcoWcs.Entitys.SubTasks;
using System;
using System.Collections.Generic;

namespace HamcoWcs.Entitys.MainTasks
{
    public class MainTask : AuditEntity
    {
        public string Sender { get; set; }
        public string TaskId { get; set; }
        public string UnitId { get; set; }

        //================================================
        public string SrcMachine { get; set; }
        public string SrcPosition { get; set; }
        public string SrcType { get; set; }
        public string SrcZone { get; set; }
        public string DesMachine { get; set; }
        public string DesPosition { get; set; }
        public string DesType { get; set; }
        public string DesZone { get; set; }
        public string OldDesMachine { get; set; }
        public string OldDesPosition { get; set; }
        public string OldDesType { get; set; }
        public string OldDesZone { get; set; }
        public string CurrentMachine { get; set; }
        public string CurrentPosition { get; set; }
        public string CurrentType { get; set; }
        public string CurrentZone { get; set; }
        public int SrcPriority { get; set; }
        public int DesPriority { get; set; }
        //public int IsHandOff { get; set; }
        public int IsReportStart { get; set; }
        public int IsTimeout { get; set; }
        public string TransactionId { get; set; }
        public string Path { get; set; }
        public string MaterialInfo { get; set; }
        public string InventoryInfo { get; set; }
        public DateTime ReadyTime { get; set; }
        public DateTime StartTime { get; set; }
        public DateTime CompleteTime { get; set; }
        public DateTime LastPriorityUpdateTime { get; set; }

        ///================================================

        //public string FromLoc { get; set; }
        //public string ToLoc { get; set; }
        public string Priority { get; set; }
        public string Extend { get; set; }
        public string ReasonCode { get; set; }
        public string MainTaskType { get; set; }
        public int ActiveSubTaskId { get; set; }
        public int TotalSubTaskNum { get; set; }
        public string TaskStatus { get; set; }

        public int ComplexPriority { get; set; }

        public List<SubTask> SubTasks { get; set; } = new List<SubTask>();

    }
}